package com.ctshk.rpc.custom.req.trip;

import com.ctshk.common.model.BaseEntity;
import com.ctshk.rpc.custom.dto.trip.CollectionTouristPriceDTO;
import com.ctshk.rpc.custom.dto.trip.TripScheduleAdvancedDTO;
import com.ctshk.rpc.custom.dto.trip.TripScheduleFeeAdjustDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 团期
 */

@Data
public class CustomizedTripScheduleDTO extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "团号")
    private String tripNumber;

    @ApiModelProperty(value = "出境类型")
    private Integer departType;

    @ApiModelProperty(value = "询价单ID")
    private Long inquiryId;

    @ApiModelProperty(value = "询价单标题")
    private String inquiryTitle;

    @ApiModelProperty(value = "询价单号")
    private String inquiryNumber;

    @ApiModelProperty(value = "报价单ID")
    private Long quotationId;

    @ApiModelProperty(value = "报价单标题")
    private String quotationTitle;

    @ApiModelProperty(value = "报价单单号")
    private String quotationNumber;

    @ApiModelProperty(value = "大客户ID")
    private Long bigClientId;

    @ApiModelProperty(value = "大客户名称")
    private String bigClientName;

    @ApiModelProperty(value = "报价方式(1 自由报价2 行程报价)")
    private Integer quotationType;

    @ApiModelProperty(value = "团费类型冗余(1 人均,2 服务费)")
    private Integer groupFeeType;

    @ApiModelProperty(value = "团队状态(1 开售 2 不成团 3 已成团 4 已完团 5 已保存)")
    private Integer groupStatus;

    @ApiModelProperty(value = "行程名称")
    private String name;

    @ApiModelProperty(value = "行程副标题")
    private String subtitle;

    @ApiModelProperty(value = "旅游组别主数据ID")
    private Long tourTypeId;

    @ApiModelProperty(value = "旅游组别名称")
    private String tourTypeName;

    @ApiModelProperty(value = "旅行团种类主数据ID")
    private Long groupTypeId;

    @ApiModelProperty(value = "旅行团种类名称")
    private String groupTypeName;

    @ApiModelProperty(value = "团队性质主数据ID")
    private Long groupNatureId;

    @ApiModelProperty(value = "团队性质名称")
    private String groupNatureName;

    @ApiModelProperty(value = "目的地主数据ID")
    private Long destinationId;

    @ApiModelProperty(value = "目的地")
    private String destination;

    @ApiModelProperty(value = "出发地主数据ID")
    private Long departurePlaceId;

    @ApiModelProperty(value = "出发地")
    private String departurePlace;

    @ApiModelProperty(value = "出发日期")
    private LocalDateTime departureDate;

    @ApiModelProperty(value = "出行天数")
    private Integer travelDays;

    @ApiModelProperty(value = "含几晚")
    private Integer nightDays;

    @ApiModelProperty(value = "负责人ID")
    private Long chargePersonId;

    @ApiModelProperty(value = "负责人员工号")
    private String chargePersonNumber;

    @ApiModelProperty(value = "负责人姓名")
    private String chargePersonName;

    @ApiModelProperty(value = "OP的ID")
    private Long opId;

    @ApiModelProperty(value = "OP的员工号")
    private String opNumber;

    @ApiModelProperty(value = "OP姓名")
    private String opName;

    @ApiModelProperty(value = "是否需要保险")
    private Integer needInsurance;

    @ApiModelProperty(value = "是否需要签证")
    private Integer needVisa;

    @ApiModelProperty(value = "内部摘要")
    private String internalSummary;

    @ApiModelProperty(value = "接待须知")
    private String receptionInstructions;

    @ApiModelProperty(value = "顾客须知")
    private String customerRights;

    @ApiModelProperty(value = "门市通知")
    private String shopNotice;

    @ApiModelProperty(value = "最小定金")
    private BigDecimal minDeposit;

    @ApiModelProperty(value = "交余数天数")
    private Integer deliveryDays;

    @ApiModelProperty(value = "创建人ID")
    private Long createId;

    @ApiModelProperty(value = "修改人ID")
    private Long modifiedId;

    @ApiModelProperty(value = "删除标识")
    private Integer isDeleted;


    @ApiModelProperty(value = "行程报价-总单价")
    private BigDecimal quoteTotalSinglePrice;
    @ApiModelProperty(value = "旅客类型代收费用单价")
    private List<CollectionTouristPriceDTO> collectionTouristList;
    @ApiModelProperty(value = "高级设置dto")
    private TripScheduleAdvancedDTO advancedDTO;
    @ApiModelProperty(value = "调整费用")
    private List<TripScheduleFeeAdjustDTO> feeAdjustList;

    @ApiModelProperty(value = "团费包含")
    private String tourFeeInclude;
    @ApiModelProperty(value = "团费不包含")
    private String tourFeeExclude;
    @ApiModelProperty(value = "报名须知")
    private String signNotice;
    @ApiModelProperty(value = "备注")
    private String remark;

}
